home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Light ROM 1
/
LIGHT-ROM 1 (Amiga Library Services)(1994).iso
/
ffdisks
/
d884.lha
/
Budget93
/
budget.doc
next >
Wrap
Text File
|
1993-07-16
|
29KB
|
515 lines
#1zz
1
Ernie Nelson
5651 Cielo Ave.
Goleta, Ca. 93117
June 12, 1993
Introduction to Ernie's Budget Program:
Ernie's Budget Program is a shareware program under
development. The current version is released for your use,
comments, and support. It is a rudimentary accounting program
useful for monitoring expenditures, reconciling with bank
statements, and tracking budgets. The budget model is structured
around a personal budget, with journals for each major account
item, such as checking accounts or credit cards. Within each
journal, the entries may be partitioned into account groups useful
for budget tracking and year end accounts such as your tax
accountant might find useful.
This program has been used by Ernie since 1978 and has been
in development ever since that time. It was initially created on
Apple II; first in Basic and second in Pascal and was menu driven.
When the Amiga 1000 was purchased in 1985 the budget program was
selected for conversion to learn both the Amiga interface and the
C language. The program became event driven. A useful conversion
was first completed in 1990 and Ernie's budget moved from the
Apple to the Amiga. Since then program development has continued
to provide useful account reports, journal reconciliation, and to
work with Workbench versions 1.3 and 2.04. An Amiga 3000 is now
the development platform. The following paragraphs describe the
budget data structure and the program's functions.
Account Structure Assumed by the Budget Program:
The Budget Program is structured around a personal budget
system which includes checking accounts and charge card accounts.
Each of these accounts are maintained in separate journal lists
(Journal). Expenditures in each account are recognized to have
common relationships, for example you might use a check or a
charge card to buy tax deductible supplies. An accounting
structure is provided to allow partitioning entries in the Journal
into common groups (Accounts) for reporting (printing) with
subtotals and totals. Although each Journal is separate, a common
accounting organization for multiple Journals allow reports to be
generated that can be manually combined with relative ease.
The Journal lists are characterized as "Checks" or "Cards"
types. These two Journal types have different characteristics.
The first, "Checks" is modelled after a bank checking account, the
balance is the amount of money in the account and most entries
reduce the balance. The only entries that add to the balance arez
2
identified by the keywords "Deposit", "Credit", and "Bal Fwd".
The second type "Cards" is modelled after a charge account. The
balance is the money owed to the account holder and most entries
increase the balance. With this Journal type the keywords
"Payment" and "Credit" reduce the balance. The keywords are case
insensitive. A third Journal type, "Other", is not implemented.
The Journal type "Checks" has one other feature during Entry,
the keyword "Withdrawal" automatically gets a zero check number
and the next entry will default to the previous numbered check
entry incremented by one.
Instructions for use of the Budget Program:
The program is operated from menus to select main function
windows that present gadgets and buttons to select actions. The
major functions are distributed across two menus, Project and
Actions. The Project menu provides commands for creating a new
Journal, selecting existing Journals, printing reports, displaying
credits, and quitting the program. The Options menu allows making
entries to the Journal, viewing and editing the Journal list,
reconciling Journal entries to external reports from the bank or
account holder, and a facility to associate each Journal entry to
an account. The following paragraphs address each menu option and
how you may expect to use it.
Project Menu
The project menu provides commands to initiate and input
Journal lists, to develop reports of Journal lists, and quit the
program. The menu has six items: New Journal, Open Existing
Journal, Save Journal, Print Reports, About, and Quit. These menu
items become active for your use when appropriate. For example,
when the program is first run, the Save Journal item is ghosted
while the New Journal and Open Existing Journal items are active.
After either creating a New Journal or Opening an Existing
Journal, the situation reverses and the Save Journal item becomes
active. The following paragraphs explain what happens when
selecting each of these menu items.
New Journal
This is the first menu item that you would select, to create
a new Journal and make your first entries. When selected a New
Journal window is presented with five gadgets: an text gadget for
typing in the Journal name, three buttons to select the Journal
type, and an accept button. You should first type in a name in
the text gadget, ending with a carriage return. Then you should
select a Journal type by pointing and clicking one of the three
type buttons. Selected type buttons do not stay highlited in this
version of the program. You can reselect any type button and editz
3
the name in the usual Amiga manner for text gadgets. The bottom
button is the accept button. You select it when you have entered
an acceptable name and selected a Journal type. Note the close
gadget in the window border. At this point in the function, this
gadget is an escape gadget that exits the function without
defining a new Journal. Throughout this program the close window
border gadget's function is dependant upon which function window
is active.
The normal exit from this function window is the accept button
gadget at the bottom of the window.
When an acceptable new Journal is defined by name and type
and so indicated by selection of the Accept button, a new window
is opened. A Journal entry window is opened with a first Journal
entry identified. This first entry is "Bal Fwd" (balance
forward). This is a special entry and the key description words
should not be changed. The date should be today's date from your
system clock. The last box is the balance forward value field.
Since this Journal is meant to be a single year's list of
transactions, you are expected to open a new Journal each year and
enter the last balance from the previous year's Journal using this
function. After entering your balance forward you can continue
entering transactions as explained below under the action Entry.
If this is your first time with this program, enter your balance
forward and exit as described in the next paragraph.
You enter a balance forward by pointing the cursor at the
last field in the window, entering a balance number as a floating
point value of dollars and decimal cents ($$$$.cc). Terminate the
entry with a carriage return to indicate an acceptable entry.
Then select the window close gadget to return to the main menu
window.
Open Existing Journal
Select this menu item to load an existing Journal file from
your current directory, or any other directory. A file selection
window will open, displaying volumes, directories, and Journal
files for selection. Currently this window is designed for the
Workbench 1.3 system, although it can be used with Workbench 2.04
without all the features. This file selector uses R.J. Mical's
Prosuite Volume 1 routines to find available disk volumes, which
do not find V2.04 hard disk partitions on my A3000. However you
can still select Journal files and change volumes manually before
running the budget program. Workbench 1.3 is assumed for the
function description.
The Directory Selector window displays volumes, directories,
and Journal files for selection. Volumes are shown in the button
gadgets along the right hand side of the window. Only sevenz
4
volumes can be displayed with RAM:, Parent, and Accept buttons.
Directories and Journal files are displayed in a scroll list in
the main portion of the window. If you select a volume or
directory, the scroll list changes to show the contents of the
volume or directory chosen (only directories and Journal files are
visible). Also the File annunciator at the bottom of the window
changes to indicate the level of selection (for a volume,
directory, or file pathname). Selection of a Journal file name
(an entry with a ".jou" suffix) changes the File annunciator to
indicate a complete file name has been selected.
The Directory Selector is exited by either the window close
gadget or the Accept button gadget at the bottom right of the
window. If a valid Journal file has been selected, it will be
opened and the Action menu items will be activated. Otherwise,
the Directory Selector will be closed with no action leaving you
to select active menu items from the Project menu.
Save Journal
Select this menu item to save the Journal list to the current
directory on your disk. This is not the directory of the path
name that may have been used to read the file with the Directory
Selector at present, but it is the directory which you were in
when you initiated this program. Usually it is the directory in
which your budget program is stored. In other words, the file is
stored in the directory which was last selected by a CLI command
"cd" or by drawer opening from Workbench.
The program is set up so that you cannot select new Journals
without first saving the current one you have active. However you
can short circuit this safety structure by selecting the close
gadget in the Journal window at the menu item selection level, top
most level. IF YOU DO THIS THE PROGRAM WILL TERMINATE AND YOU
WILL LOSE ANY ENTRIES OR CHANGES TO THE JOURNAL MADE SINCE IT WAS
FIRST LOADED. Since this is a beta version of the program, this
escape is provided to allow frustrated users to bail out and give
up if they so desire. Hope it does not happen to you!
Print Reports
Print Reports menu item has three sub-menu items: Monthly,
Accounts, and Acct Stats. The first one provides a capability to
print the Journal list in chronological order, by months where
each month begins a new page. The Accounts item allows you to
print out all of the Journal list by their associated Accounts,
each Account begins a new page. The Acct Stats item provides a
statistical method of reviewing the Journal entries that are
associated to Accounts. Each of these sub-items will operate if
the appropriate Journal and Account entries have been made. Each
one has an operating window. A valid printer is assumed to be
attached to your computer for each action in this section.z
5
If you do not have a printer, the system will indicate
printer trouble with a requestor. Select "Cancel" and the print
command will terminate. Presently there is no screen oriented
reporting method. It is assumed that all reports are printed
directly to paper.
Print Reports Monthly
This menu item opens a window with button gadgets for each
month entered in the Journal list, a button to select printing,
and one to quit the function. You can select months by pointing
and clicking on any of the month buttons. Each selected month
button stays depressed to indicate its selection. A second point
and click will de-select the month button. Once the months are
selected, point and click on the Print button to begin printing.
You can exit this function with the Quit button at the bottom
of the window. Also the close gadget works to exit this function.
Print Reports Accounts
This menu item does not open any windows directly. This
function is intended to provide the capability to print a report
of all Accounts associated to the Journal list, providing sub-
totals for each Account and a final total of all Accounts. If all
Journal entries are associated to Accounts, printing begins when
this function is selected. However, if any recent entries have
not been associated with Accounts, the Make Accounts function is
started before printing. The section Make Accounts below
provides explanation of how to respond to the windows presented in
this function.
Print Reports Acct Stats
Print Account Statistics is a function selection that
provides a statistical summary of Account transactions. This
function operates on the Journal list with an existing Account
association, up to the degree that the Journal is associated with
an Account. If no Account list exists, no report is generated.
Unlike the previous Account function, if only part of the Journal
list is associated with Accounts, only that part is reported here.
When selected a window similar to the monthly report menu
item opens with buttons for each month in the account list. You
can select months for printing by pointing and clicking on any of
the month buttons. Printing may be started by pointing and
clicking on the print button.
If any months are selected, account details of each selected
month will be printed with a total balance. After the months are
printed, a statistical summary page is printed. If no months arez
6
selected, only the summary page will be printed.
The summary page provides a list of the average and standard
deviations of account transactions for all the months present in
the Account list for each Account entry. This is often useful for
budget tracking and planning activities. For example, at the end
of a year, obtaining a statistic summary page provides an average
history for that year. Aa budget plan for the next year may be
developed by applying some factor for inflation to this summary
report. Then during the next year, by selecting a statistic
summary page, you could compare the two summaries and determine
budget compliance. The monthly outputs can shed light on actual
expenses and when they occur.
This is an area where this program can be developed in the
future, to provide budget planning and tracking automation. If
you have ideas and desires for particular forms of budget
analysis, send me a note about it.
About
This menu item opens a requestor displaying the program's
copyright notice. To exit, point and click on either "OK" box.
Quit
This menu item is the normal program termination item. This
item is not active when a Journal file is loaded, you must save
the Journal before quitting the program. Note again the window
close gadget is an escape button that unconditionally exits the
program (see Save Journal).
Actions Menu
The actions menu provides commands to make chronological
entries to the Journal list, view and edit existing entries,
develop reconciliation listings to compare with bank or account
holder statements, and an Accounts facility for organizing the
Journal lists. This menu has five items: Entry, View/Edit,
Reconcile, and Make Accounts.
Entry
Entry organizes a set of input gadgets on the program window
to allow sequential entries to the Journal list. The gadgets
depend upon the Journal list type, "checks" provides a check
number field in addition to the fields of month, day, description,
and amount. Journal list types "cards" and "other" provide the
latter gadgets, without the check number field. Each field can be
entered from the keyboard in sequence without mouse intervention,z
7
the first field is active when the gadgets are activated. Some
fields are automatically filled with probable entries. Each field
may be accepted by entering a carriage return or mousing to
another field. However, the entry will not be entered in the
Journal list until the last field is filled with a value and
terminated with a carriage return. Here a mouse selection does
not signal a similar action, allowing the user to mouse to a
previous field and make changes before closing the entry.
The fields are currently not bullet proof. Number fields
should only recieve numbers. The check number and day fields are
integer numbers. The value or amount entry is a floating or
decimal number. The month field is character but only recognizes
the following three letter month nomenclature: JAN, FEB, MAR, APR,
MAY, JUN, JUL, AUG, SEP, OCT, NOV, and DEC. These may be in upper
or lower case, the letter case is not significant.
This entry structure is designed to allow sequential Journal
inputs for accounts such as checks or charge cards simulating
chronological entries in a check record or paper Journal book.
The gadget fields are driven from the keyboard as well as the
mouse. One approach to this input is to sit down with a weeks
worth of check stubs or charge card receipts for one of the
Journals you have set up. Organize them in chronological order
and begin entering the data. For example, check number, month,
day, description that appears on the check payee section, and
amount. Each entry is terminated by a carriage return. When the
last field is entered and a carriage terminates it, the complete
entry is entered into the Journal list. You can notice this from
the gadget's change, they all change to expected values for the
next entry and the last entry is reproduced above the gadgets.
Also the Journal balance is updated. For example if a check
number was previously entered, the next entry's expected check
number is the last one incremented by one. The most probable date
is the last one entered. The description and amount fields are
empty.
Each gadget is an Amiga Text gadget and can be selected by
mouse in any order. This allows you to notice an error in a
previous field during entry allowing you to go back and correct
it. But you must either enter carriage returns to move the cursor
out to the end of the gadget list or select the last gadget, the
entry amount, and enter a carriage return to get it entered into
the Journal list. Also, if errors are made and not immediately
corrected, the View/Edit option allows correction.
View/Edit
The View/Edit option provides a facility to review the
Journal list and make corrections by editing an existing entry or
inserting a new one. Selection of this option brings up a
proportional gadget list of the Journal list with two gadgets onez
8
for editing and one for inserting. The Journal list may be
viewed, 12 lines at a time, by using the mouse to move the slider
on the right side of the window. Each visible entry is a gadget
that may be selected. Once an entry is selected, the Edit or
Insert gadgets may be selected. The Edit gadget will enter the
selected entry into a window like the Entry window, with the
fields filled with the selected entry. Use the mouse to select
fields to edit and use the carriage return in the last field to
complete the edit. The Insert gadget will open a similar empty
Entry window with the previous entry identified above the entry
fields. The insert action is done above the selected entry. You
cannot select the first entry for inserting above.
Reconcile
This option provides an interactive listing facility to help
with reconciling your Journal listing with the bank or account
holder. Here you can select entries in the Journal listing that
correspond to the account holder's statement. You can view and
select entries in a manner similar to the View/Edit window. Edit
and Insert gadgets are provided here too. Also a Print and an
Accept gadget are provided. The Print gadget provides a printed
report of the selected entries with sums of the credits and debits
for the entries. These are totals similar to most account
statements that separately total expenditures and deposits or
payments. The Accept gadget exits the Reconciliation option.
When you accept the selections you have made, the Journal
list entries are updated to reflect that these entries have been
reconciled and are no longer outstanding. The entry field "Q" in
the reports shows an "O" for entries that are not reconciled and
an "X" for those accepted here. When the Accept gadget is
selected, the "Q" field is changed for each entry that has been
selected and the reconciliation window is closed.
Make Accounts
Make Accounts is the function that allows you to partition
your Journal entries into common groups for printing with
subtotals and totals. The accounting structure of the program has
two modes, automatic and manual. The automatic mode is selected
by the presence of an Account file (###.acct) for a Journal in the
same directory as the Journal file (###.jou). This file is
created upon saving a Journal file after having performed this
function. The manual mode is this function, and will be explained
first.
The manual mode of Make Accounts can be selected any time a
valid Journal file is loaded into the program. This mode allows
you to select Account names and associate Journal entries with
these names. This is done with three windows. First assume that
no ###.acct file exists for a currently loaded Journal file.z
9
Upon selecting Make Accounts, two windows appear at the
bottom of the screen below the program window. The first, on the
left side, displays a shaded Journal entry description. The
second, on the right side, displays a text gadget with the
explanation to enter an Account name (the Account entering
gadget). You decide what Account name best fits the displayed
Journal entry and type it in, being sure to end it with a carriage
return. For example, an entry may be "Bal Fwd" displayed in the
left window. One association could be "Bank", and you would type
the name into the right window.
Once a first Account entry is entered, a new window opens on
the right side. This window is a list selector gadget that
displays the current group of Account names available for
association with Journal entries. Also a button gadget for adding
a new Account name appears near the top of the window, entitled
"New". Again, in the left window the next Journal entry
description is displayed. The basic procedure from this point on
is to point and click the mouse pointer on the Account name that
best associates the Journal entry displayed, or on the "New"
button to add a new Account name to the list. Selecting the "New"
button brings up the Account entering window described in the
previous paragraph. You continue this until all Journal entries
have been associated to Accounts, where upon the Make Account
windows will all close.
After an Account list has been created the automatic mode of
Make Accounts is initiated. This mode differs from the manual
mode only during the loading of an existing Journal file with an
associated Account file. During loading, the Make Account
function is enacted. Usually all descriptions in the Journal will
be associated and the display window will flash these descriptions
as they are processed. However, when a description is not
associated to an Account, you must again select an Account from
the list or enter a new one, as explained above.
Make Accounts function operates the same way in either the
automatic or manual mode. You may select it anytime. If entries
in the Journal are not associated, the Account selection window
will open for your response.
c